package com.example.mapper;

import com.example.entity.AdminInventoryRecord;
import com.example.dto.AdminInventoryQueryDTO;
import com.example.vo.AdminInventoryRecordVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 管理员库存记录Mapper接口
 */
@Mapper
public interface AdminInventoryRecordMapper {

    /**
     * 插入管理员库存记录
     */
    int insert(AdminInventoryRecord record);

    /**
     * 根据ID查询
     */
    AdminInventoryRecord selectById(Long id);

    /**
     * 根据ID更新
     */
    int updateById(AdminInventoryRecord record);

    /**
     * 根据ID删除（逻辑删除）
     */
    int deleteById(Long id);

    /**
     * 分页查询管理员库存记录
     */
    List<AdminInventoryRecordVO> selectPageList(@Param("query") AdminInventoryQueryDTO query);

    /**
     * 查询总数
     */
    Long selectCount(@Param("query") AdminInventoryQueryDTO query);

    /**
     * 根据商品ID查询库存记录
     */
    List<AdminInventoryRecordVO> selectByProductId(@Param("productId") Long productId);

    /**
     * 根据目标商家ID查询分配记录
     */
    List<AdminInventoryRecordVO> selectByTargetMerchantId(@Param("merchantId") Long merchantId);

    /**
     * 查询入库记录（新增商品）
     */
    List<AdminInventoryRecordVO> selectInRecords(@Param("query") AdminInventoryQueryDTO query);

    /**
     * 查询出库记录（分配给商家）
     */
    List<AdminInventoryRecordVO> selectOutRecords(@Param("query") AdminInventoryQueryDTO query);
} 